#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    int count = 0;
    // 打开默认摄像头
    VideoCapture cap("/dev/video0");
    if (!cap.isOpened()) {
        cerr << "无法打开摄像头" << endl;
        return -1;
    }

    namedWindow("Camera Preview", WINDOW_NORMAL); // 创建窗口

    while (true) {
        Mat frame;
        // 从摄像头读取一帧
        cap >> frame;
        if (frame.empty()) {
            cerr << "捕获到空帧，退出循环" << endl;
            break;
        }

        // 显示视频帧
        imshow("Camera Preview", frame);

        // 监听键盘事件
        char key = (char)waitKey(1);
        // 按下空格键时保存图像
        if (key == 32) { // 32 是空格键的ASCII码
            imwrite("../resource/appleImages/image"+std::to_string(count)+".jpg",frame); // 保存图片到当前目录
            cout << "图片已保存" << endl;
            count++;
        }
        // 按下'q'或'Q'键时退出循环
        else if (key == 'q' || key == 'Q') {
            break;
        }
    }

    // 释放资源并关闭窗口
    cap.release();
    destroyAllWindows();

    return 0;
}